﻿using System.Drawing;
using System.Drawing.Imaging;
using System.Threading.Tasks;
using CloudShot.Core.Types;

namespace CloudShot.Core.Interfaces
{
	/// <summary>
	/// Exposes the image storage.
	/// </summary>
	public interface IImageStorage
	{
		Image Logo { get; }

		string Name { get; }

		string Description { get; }

		ImageSaveFormat CurrentImageFormat { get; }

		ISettingsUIHolder SettingsUIHolder { get; }

		ISettingsRepository SettingsRepository { get; }

		void Initialize(ISettingsRepository settingsRepository);

		Task<ShotInfo> SaveImage(Image image, string name, ImageFormat saveImageFormat);
	}
}